import axios, { AxiosHeaders } from 'axios'
import { Dialog } from 'vant';
import type { AxiosRequestConfig } from 'axios';
// 创建axios实例
const instance = axios.create({
    baseURL: 'http://47.94.148.165:3001/api',
    timeout: 10000
})
//config 接收本次请求的所有信息
// 携带token的ts类型为AxiosRequestConfig
// 默认为有header的，但是没有token属性，需要把token属性补充到ts格式类型上

// 制作一个自己的请求头
// myAxiosRequestConfig 继承自 AxiosRequestConfig
// 再使用断言
// config as myAxiosRequestConfig

// interface myAxiosRequestConfig extends AxiosRequestConfig {
//     headers: { token?: string | null }
// }

//配置请求拦截器
instance.interceptors.request.use((config: AxiosRequestConfig) => {
    console.log(config.url)
    // return config

    //  判断是获取用户信息
    if (config.url === '/user/info') {
        (config.headers as AxiosRequestConfig<AxiosHeaders>).token = window.localStorage.getItem('token')
    }
    //  判断是购物车相关

    //  判断是订单相关


    return config
})

// 配置响应拦截器
instance.interceptors.response.use(
    reponse => {
        return reponse.data
    },
    err => {
        console.log('本次请求失败了', err)
        Dialog.alert({ title: '网络错误', message: '网络不给力，稍后再来' })
    })

// 导出实例
export default instance